package com.cango.student.algorithm;

/**
 * BF 算法
 * 暴力字符搜索算法
 */
public class BF {
    public static void main(String args[]) {
        String str1 = "ailkmno";
        String str2 = "no";
        int n = find(str1, str2);
        System.out.println(str2 + "在" + str1 + "中出现的位置是：" + n);

    }


    /**
     * @param str1 主串
     * @param str2 模式串
     * @return
     */
    public static int find(String str1, String str2) {
        // 基准位
        int index = 0;
        // 主串起始
        int i = 0;
        // 模式串起始
        int j = 0;
        char[] arr1 = str1.toCharArray();
        char[] arr2 = str2.toCharArray();

        while (i < arr1.length && j < arr2.length) {
            if (arr1[i] == arr2[j]) {
                i++;
                j++;
            } else {
                index++;
                i = index;
                j = 0;
            }
        }
        if (j == arr2.length) {
            return index + 1;//输出的是位置，所以角标要加1！
        }
        return -1;
    }
}
